﻿(function ($) {
    function init(target) {
        var opt = $.data(target, "textbox").options;

        var box = $("<span class='combo'></span>").css({ "width": ($(target).width() - 2) + "px" });
        box.css({ "height": "20px" });
        $(target).addClass("validatebox-text").addClass("combo-text");
        $(target).css({ "height": "20px", "line-height": "20px" });
        $(target).css({ "border": "none", "width": ($(target).width() - 6) + "px" }).wrapAll(box);

        $(target).validatebox(opt);
    };

    $.fn.textbox = function (options, params) {
        if (typeof options === "string") {
            return $(this).textbox.methods[options].call(this, params);
        }

        options = options || {};
        return this.each(function () {
            var opt = $.data(this, "textbox");
            if (opt) { $.extend(opt.options, options); }
            else {
                $.data(this, "textbox", {
                    options: $.extend({}, $.fn.textbox.defaults, options, $.fn.textbox.parseOptions(this))
                });
                init(this);
            }
        });
    };

    $.fn.textbox.methods = {};

    $.fn.textbox.parseOptions = function (target) {
        var jq = $(target);
        return { id: jq.attr("id") };
    };

    $.fn.textbox.defaults = {};

    if ($.parser) { $.parser.plugins.push("textbox"); }
})(jQuery);